from kaffe.tensorflow import Network


class ResNet50(Network):

    def setup(self):
        (
            self.feed('data') .conv(
                7,
                7,
                64,
                2,
                2,
                relu=False,
                name='conv1') .batch_normalization(
                relu=True,
                name='bn_conv1') .max_pool(
                3,
                3,
                2,
                2,
                name='pool1') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2a_branch1') .batch_normalization(
                        name='bn2a_branch1'))

        (
            self.feed('pool1') .conv(
                1,
                1,
                64,
                1,
                1,
                biased=False,
                relu=False,
                name='res2a_branch2a') .batch_normalization(
                relu=True,
                name='bn2a_branch2a') .conv(
                3,
                3,
                64,
                1,
                1,
                biased=False,
                relu=False,
                name='res2a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn2a_branch2b') .conv(
                        1,
                        1,
                        256,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res2a_branch2c') .batch_normalization(
                            name='bn2a_branch2c'))

        (
            self.feed(
                'bn2a_branch1',
                'bn2a_branch2c') .add(
                name='res2a') .relu(
                name='res2a_relu') .conv(
                    1,
                    1,
                    64,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2b_branch2a') .batch_normalization(
                        relu=True,
                        name='bn2b_branch2a') .conv(
                            3,
                            3,
                            64,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res2b_branch2b') .batch_normalization(
                                relu=True,
                                name='bn2b_branch2b') .conv(
                                    1,
                                    1,
                                    256,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res2b_branch2c') .batch_normalization(
                                        name='bn2b_branch2c'))

        (
            self.feed(
                'res2a_relu',
                'bn2b_branch2c') .add(
                name='res2b') .relu(
                name='res2b_relu') .conv(
                    1,
                    1,
                    64,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2c_branch2a') .batch_normalization(
                        relu=True,
                        name='bn2c_branch2a') .conv(
                            3,
                            3,
                            64,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res2c_branch2b') .batch_normalization(
                                relu=True,
                                name='bn2c_branch2b') .conv(
                                    1,
                                    1,
                                    256,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res2c_branch2c') .batch_normalization(
                                        name='bn2c_branch2c'))

        (self.feed('res2b_relu',
                   'bn2c_branch2c')
         .add(name='res2c')
         .relu(name='res2c_relu')
         .conv(1, 1, 512, 2, 2, biased=False, relu=False, name='res3a_branch1')
         .batch_normalization(name='bn3a_branch1'))

        (
            self.feed('res2c_relu') .conv(
                1,
                1,
                128,
                2,
                2,
                biased=False,
                relu=False,
                name='res3a_branch2a') .batch_normalization(
                relu=True,
                name='bn3a_branch2a') .conv(
                3,
                3,
                128,
                1,
                1,
                biased=False,
                relu=False,
                name='res3a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn3a_branch2b') .conv(
                        1,
                        1,
                        512,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res3a_branch2c') .batch_normalization(
                            name='bn3a_branch2c'))

        (
            self.feed(
                'bn3a_branch1',
                'bn3a_branch2c') .add(
                name='res3a') .relu(
                name='res3a_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b_branch2c') .batch_normalization(
                                        name='bn3b_branch2c'))

        (
            self.feed(
                'res3a_relu',
                'bn3b_branch2c') .add(
                name='res3b') .relu(
                name='res3b_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3c_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3c_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3c_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3c_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3c_branch2c') .batch_normalization(
                                        name='bn3c_branch2c'))

        (
            self.feed(
                'res3b_relu',
                'bn3c_branch2c') .add(
                name='res3c') .relu(
                name='res3c_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3d_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3d_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3d_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3d_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3d_branch2c') .batch_normalization(
                                        name='bn3d_branch2c'))

        (
            self.feed(
                'res3c_relu',
                'bn3d_branch2c') .add(
                name='res3d') .relu(
                name='res3d_relu') .conv(
                    1,
                    1,
                    1024,
                    2,
                    2,
                    biased=False,
                    relu=False,
                    name='res4a_branch1') .batch_normalization(
                        name='bn4a_branch1'))

        (
            self.feed('res3d_relu') .conv(
                1,
                1,
                256,
                2,
                2,
                biased=False,
                relu=False,
                name='res4a_branch2a') .batch_normalization(
                relu=True,
                name='bn4a_branch2a') .conv(
                3,
                3,
                256,
                1,
                1,
                biased=False,
                relu=False,
                name='res4a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn4a_branch2b') .conv(
                        1,
                        1,
                        1024,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res4a_branch2c') .batch_normalization(
                            name='bn4a_branch2c'))

        (
            self.feed(
                'bn4a_branch1',
                'bn4a_branch2c') .add(
                name='res4a') .relu(
                name='res4a_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b_branch2c') .batch_normalization(
                                        name='bn4b_branch2c'))

        (
            self.feed(
                'res4a_relu',
                'bn4b_branch2c') .add(
                name='res4b') .relu(
                name='res4b_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4c_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4c_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4c_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4c_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4c_branch2c') .batch_normalization(
                                        name='bn4c_branch2c'))

        (
            self.feed(
                'res4b_relu',
                'bn4c_branch2c') .add(
                name='res4c') .relu(
                name='res4c_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4d_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4d_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4d_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4d_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4d_branch2c') .batch_normalization(
                                        name='bn4d_branch2c'))

        (
            self.feed(
                'res4c_relu',
                'bn4d_branch2c') .add(
                name='res4d') .relu(
                name='res4d_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4e_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4e_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4e_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4e_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4e_branch2c') .batch_normalization(
                                        name='bn4e_branch2c'))

        (
            self.feed(
                'res4d_relu',
                'bn4e_branch2c') .add(
                name='res4e') .relu(
                name='res4e_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4f_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4f_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4f_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4f_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4f_branch2c') .batch_normalization(
                                        name='bn4f_branch2c'))

        (
            self.feed(
                'res4e_relu',
                'bn4f_branch2c') .add(
                name='res4f') .relu(
                name='res4f_relu') .conv(
                    1,
                    1,
                    2048,
                    2,
                    2,
                    biased=False,
                    relu=False,
                    name='res5a_branch1') .batch_normalization(
                        name='bn5a_branch1'))

        (
            self.feed('res4f_relu') .conv(
                1,
                1,
                512,
                2,
                2,
                biased=False,
                relu=False,
                name='res5a_branch2a') .batch_normalization(
                relu=True,
                name='bn5a_branch2a') .conv(
                3,
                3,
                512,
                1,
                1,
                biased=False,
                relu=False,
                name='res5a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn5a_branch2b') .conv(
                        1,
                        1,
                        2048,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res5a_branch2c') .batch_normalization(
                            name='bn5a_branch2c'))

        (
            self.feed(
                'bn5a_branch1',
                'bn5a_branch2c') .add(
                name='res5a') .relu(
                name='res5a_relu') .conv(
                    1,
                    1,
                    512,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res5b_branch2a') .batch_normalization(
                        relu=True,
                        name='bn5b_branch2a') .conv(
                            3,
                            3,
                            512,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res5b_branch2b') .batch_normalization(
                                relu=True,
                                name='bn5b_branch2b') .conv(
                                    1,
                                    1,
                                    2048,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res5b_branch2c') .batch_normalization(
                                        name='bn5b_branch2c'))

        (
            self.feed(
                'res5a_relu',
                'bn5b_branch2c') .add(
                name='res5b') .relu(
                name='res5b_relu') .conv(
                    1,
                    1,
                    512,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res5c_branch2a') .batch_normalization(
                        relu=True,
                        name='bn5c_branch2a') .conv(
                            3,
                            3,
                            512,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res5c_branch2b') .batch_normalization(
                                relu=True,
                                name='bn5c_branch2b') .conv(
                                    1,
                                    1,
                                    2048,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res5c_branch2c') .batch_normalization(
                                        name='bn5c_branch2c'))

        (self.feed('res5b_relu',
                   'bn5c_branch2c')
         .add(name='res5c')
         .relu(name='res5c_relu')
         .avg_pool(7, 7, 1, 1, padding='VALID', name='pool5')
         .fc(1000, relu=False, name='fc1000')
         .softmax(name='prob'))


class ResNet101(Network):

    def setup(self):
        (
            self.feed('data') .conv(
                7,
                7,
                64,
                2,
                2,
                biased=False,
                relu=False,
                name='conv1') .batch_normalization(
                relu=True,
                name='bn_conv1') .max_pool(
                3,
                3,
                2,
                2,
                name='pool1') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2a_branch1') .batch_normalization(
                        name='bn2a_branch1'))

        (
            self.feed('pool1') .conv(
                1,
                1,
                64,
                1,
                1,
                biased=False,
                relu=False,
                name='res2a_branch2a') .batch_normalization(
                relu=True,
                name='bn2a_branch2a') .conv(
                3,
                3,
                64,
                1,
                1,
                biased=False,
                relu=False,
                name='res2a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn2a_branch2b') .conv(
                        1,
                        1,
                        256,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res2a_branch2c') .batch_normalization(
                            name='bn2a_branch2c'))

        (
            self.feed(
                'bn2a_branch1',
                'bn2a_branch2c') .add(
                name='res2a') .relu(
                name='res2a_relu') .conv(
                    1,
                    1,
                    64,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2b_branch2a') .batch_normalization(
                        relu=True,
                        name='bn2b_branch2a') .conv(
                            3,
                            3,
                            64,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res2b_branch2b') .batch_normalization(
                                relu=True,
                                name='bn2b_branch2b') .conv(
                                    1,
                                    1,
                                    256,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res2b_branch2c') .batch_normalization(
                                        name='bn2b_branch2c'))

        (
            self.feed(
                'res2a_relu',
                'bn2b_branch2c') .add(
                name='res2b') .relu(
                name='res2b_relu') .conv(
                    1,
                    1,
                    64,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2c_branch2a') .batch_normalization(
                        relu=True,
                        name='bn2c_branch2a') .conv(
                            3,
                            3,
                            64,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res2c_branch2b') .batch_normalization(
                                relu=True,
                                name='bn2c_branch2b') .conv(
                                    1,
                                    1,
                                    256,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res2c_branch2c') .batch_normalization(
                                        name='bn2c_branch2c'))

        (self.feed('res2b_relu',
                   'bn2c_branch2c')
         .add(name='res2c')
         .relu(name='res2c_relu')
         .conv(1, 1, 512, 2, 2, biased=False, relu=False, name='res3a_branch1')
         .batch_normalization(name='bn3a_branch1'))

        (
            self.feed('res2c_relu') .conv(
                1,
                1,
                128,
                2,
                2,
                biased=False,
                relu=False,
                name='res3a_branch2a') .batch_normalization(
                relu=True,
                name='bn3a_branch2a') .conv(
                3,
                3,
                128,
                1,
                1,
                biased=False,
                relu=False,
                name='res3a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn3a_branch2b') .conv(
                        1,
                        1,
                        512,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res3a_branch2c') .batch_normalization(
                            name='bn3a_branch2c'))

        (
            self.feed(
                'bn3a_branch1',
                'bn3a_branch2c') .add(
                name='res3a') .relu(
                name='res3a_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b1_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b1_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b1_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b1_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b1_branch2c') .batch_normalization(
                                        name='bn3b1_branch2c'))

        (
            self.feed(
                'res3a_relu',
                'bn3b1_branch2c') .add(
                name='res3b1') .relu(
                name='res3b1_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b2_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b2_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b2_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b2_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b2_branch2c') .batch_normalization(
                                        name='bn3b2_branch2c'))

        (
            self.feed(
                'res3b1_relu',
                'bn3b2_branch2c') .add(
                name='res3b2') .relu(
                name='res3b2_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b3_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b3_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b3_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b3_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b3_branch2c') .batch_normalization(
                                        name='bn3b3_branch2c'))

        (
            self.feed(
                'res3b2_relu',
                'bn3b3_branch2c') .add(
                name='res3b3') .relu(
                name='res3b3_relu') .conv(
                    1,
                    1,
                    1024,
                    2,
                    2,
                    biased=False,
                    relu=False,
                    name='res4a_branch1') .batch_normalization(
                        name='bn4a_branch1'))

        (
            self.feed('res3b3_relu') .conv(
                1,
                1,
                256,
                2,
                2,
                biased=False,
                relu=False,
                name='res4a_branch2a') .batch_normalization(
                relu=True,
                name='bn4a_branch2a') .conv(
                3,
                3,
                256,
                1,
                1,
                biased=False,
                relu=False,
                name='res4a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn4a_branch2b') .conv(
                        1,
                        1,
                        1024,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res4a_branch2c') .batch_normalization(
                            name='bn4a_branch2c'))

        (
            self.feed(
                'bn4a_branch1',
                'bn4a_branch2c') .add(
                name='res4a') .relu(
                name='res4a_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b1_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b1_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b1_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b1_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b1_branch2c') .batch_normalization(
                                        name='bn4b1_branch2c'))

        (
            self.feed(
                'res4a_relu',
                'bn4b1_branch2c') .add(
                name='res4b1') .relu(
                name='res4b1_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b2_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b2_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b2_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b2_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b2_branch2c') .batch_normalization(
                                        name='bn4b2_branch2c'))

        (
            self.feed(
                'res4b1_relu',
                'bn4b2_branch2c') .add(
                name='res4b2') .relu(
                name='res4b2_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b3_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b3_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b3_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b3_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b3_branch2c') .batch_normalization(
                                        name='bn4b3_branch2c'))

        (
            self.feed(
                'res4b2_relu',
                'bn4b3_branch2c') .add(
                name='res4b3') .relu(
                name='res4b3_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b4_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b4_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b4_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b4_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b4_branch2c') .batch_normalization(
                                        name='bn4b4_branch2c'))

        (
            self.feed(
                'res4b3_relu',
                'bn4b4_branch2c') .add(
                name='res4b4') .relu(
                name='res4b4_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b5_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b5_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b5_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b5_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b5_branch2c') .batch_normalization(
                                        name='bn4b5_branch2c'))

        (
            self.feed(
                'res4b4_relu',
                'bn4b5_branch2c') .add(
                name='res4b5') .relu(
                name='res4b5_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b6_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b6_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b6_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b6_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b6_branch2c') .batch_normalization(
                                        name='bn4b6_branch2c'))

        (
            self.feed(
                'res4b5_relu',
                'bn4b6_branch2c') .add(
                name='res4b6') .relu(
                name='res4b6_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b7_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b7_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b7_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b7_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b7_branch2c') .batch_normalization(
                                        name='bn4b7_branch2c'))

        (
            self.feed(
                'res4b6_relu',
                'bn4b7_branch2c') .add(
                name='res4b7') .relu(
                name='res4b7_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b8_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b8_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b8_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b8_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b8_branch2c') .batch_normalization(
                                        name='bn4b8_branch2c'))

        (
            self.feed(
                'res4b7_relu',
                'bn4b8_branch2c') .add(
                name='res4b8') .relu(
                name='res4b8_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b9_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b9_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b9_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b9_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b9_branch2c') .batch_normalization(
                                        name='bn4b9_branch2c'))

        (
            self.feed(
                'res4b8_relu',
                'bn4b9_branch2c') .add(
                name='res4b9') .relu(
                name='res4b9_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b10_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b10_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b10_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b10_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b10_branch2c') .batch_normalization(
                                        name='bn4b10_branch2c'))

        (
            self.feed(
                'res4b9_relu',
                'bn4b10_branch2c') .add(
                name='res4b10') .relu(
                name='res4b10_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b11_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b11_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b11_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b11_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b11_branch2c') .batch_normalization(
                                        name='bn4b11_branch2c'))

        (
            self.feed(
                'res4b10_relu',
                'bn4b11_branch2c') .add(
                name='res4b11') .relu(
                name='res4b11_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b12_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b12_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b12_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b12_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b12_branch2c') .batch_normalization(
                                        name='bn4b12_branch2c'))

        (
            self.feed(
                'res4b11_relu',
                'bn4b12_branch2c') .add(
                name='res4b12') .relu(
                name='res4b12_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b13_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b13_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b13_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b13_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b13_branch2c') .batch_normalization(
                                        name='bn4b13_branch2c'))

        (
            self.feed(
                'res4b12_relu',
                'bn4b13_branch2c') .add(
                name='res4b13') .relu(
                name='res4b13_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b14_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b14_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b14_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b14_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b14_branch2c') .batch_normalization(
                                        name='bn4b14_branch2c'))

        (
            self.feed(
                'res4b13_relu',
                'bn4b14_branch2c') .add(
                name='res4b14') .relu(
                name='res4b14_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b15_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b15_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b15_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b15_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b15_branch2c') .batch_normalization(
                                        name='bn4b15_branch2c'))

        (
            self.feed(
                'res4b14_relu',
                'bn4b15_branch2c') .add(
                name='res4b15') .relu(
                name='res4b15_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b16_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b16_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b16_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b16_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b16_branch2c') .batch_normalization(
                                        name='bn4b16_branch2c'))

        (
            self.feed(
                'res4b15_relu',
                'bn4b16_branch2c') .add(
                name='res4b16') .relu(
                name='res4b16_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b17_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b17_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b17_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b17_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b17_branch2c') .batch_normalization(
                                        name='bn4b17_branch2c'))

        (
            self.feed(
                'res4b16_relu',
                'bn4b17_branch2c') .add(
                name='res4b17') .relu(
                name='res4b17_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b18_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b18_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b18_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b18_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b18_branch2c') .batch_normalization(
                                        name='bn4b18_branch2c'))

        (
            self.feed(
                'res4b17_relu',
                'bn4b18_branch2c') .add(
                name='res4b18') .relu(
                name='res4b18_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b19_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b19_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b19_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b19_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b19_branch2c') .batch_normalization(
                                        name='bn4b19_branch2c'))

        (
            self.feed(
                'res4b18_relu',
                'bn4b19_branch2c') .add(
                name='res4b19') .relu(
                name='res4b19_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b20_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b20_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b20_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b20_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b20_branch2c') .batch_normalization(
                                        name='bn4b20_branch2c'))

        (
            self.feed(
                'res4b19_relu',
                'bn4b20_branch2c') .add(
                name='res4b20') .relu(
                name='res4b20_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b21_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b21_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b21_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b21_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b21_branch2c') .batch_normalization(
                                        name='bn4b21_branch2c'))

        (
            self.feed(
                'res4b20_relu',
                'bn4b21_branch2c') .add(
                name='res4b21') .relu(
                name='res4b21_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b22_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b22_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b22_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b22_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b22_branch2c') .batch_normalization(
                                        name='bn4b22_branch2c'))

        (
            self.feed(
                'res4b21_relu',
                'bn4b22_branch2c') .add(
                name='res4b22') .relu(
                name='res4b22_relu') .conv(
                    1,
                    1,
                    2048,
                    2,
                    2,
                    biased=False,
                    relu=False,
                    name='res5a_branch1') .batch_normalization(
                        name='bn5a_branch1'))

        (
            self.feed('res4b22_relu') .conv(
                1,
                1,
                512,
                2,
                2,
                biased=False,
                relu=False,
                name='res5a_branch2a') .batch_normalization(
                relu=True,
                name='bn5a_branch2a') .conv(
                3,
                3,
                512,
                1,
                1,
                biased=False,
                relu=False,
                name='res5a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn5a_branch2b') .conv(
                        1,
                        1,
                        2048,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res5a_branch2c') .batch_normalization(
                            name='bn5a_branch2c'))

        (
            self.feed(
                'bn5a_branch1',
                'bn5a_branch2c') .add(
                name='res5a') .relu(
                name='res5a_relu') .conv(
                    1,
                    1,
                    512,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res5b_branch2a') .batch_normalization(
                        relu=True,
                        name='bn5b_branch2a') .conv(
                            3,
                            3,
                            512,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res5b_branch2b') .batch_normalization(
                                relu=True,
                                name='bn5b_branch2b') .conv(
                                    1,
                                    1,
                                    2048,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res5b_branch2c') .batch_normalization(
                                        name='bn5b_branch2c'))

        (
            self.feed(
                'res5a_relu',
                'bn5b_branch2c') .add(
                name='res5b') .relu(
                name='res5b_relu') .conv(
                    1,
                    1,
                    512,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res5c_branch2a') .batch_normalization(
                        relu=True,
                        name='bn5c_branch2a') .conv(
                            3,
                            3,
                            512,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res5c_branch2b') .batch_normalization(
                                relu=True,
                                name='bn5c_branch2b') .conv(
                                    1,
                                    1,
                                    2048,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res5c_branch2c') .batch_normalization(
                                        name='bn5c_branch2c'))

        (self.feed('res5b_relu',
                   'bn5c_branch2c')
         .add(name='res5c')
         .relu(name='res5c_relu')
         .avg_pool(7, 7, 1, 1, padding='VALID', name='pool5')
         .fc(1000, relu=False, name='fc1000')
         .softmax(name='prob'))


class ResNet152(Network):

    def setup(self):
        (
            self.feed('data') .conv(
                7,
                7,
                64,
                2,
                2,
                biased=False,
                relu=False,
                name='conv1') .batch_normalization(
                relu=True,
                name='bn_conv1') .max_pool(
                3,
                3,
                2,
                2,
                name='pool1') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2a_branch1') .batch_normalization(
                        name='bn2a_branch1'))

        (
            self.feed('pool1') .conv(
                1,
                1,
                64,
                1,
                1,
                biased=False,
                relu=False,
                name='res2a_branch2a') .batch_normalization(
                relu=True,
                name='bn2a_branch2a') .conv(
                3,
                3,
                64,
                1,
                1,
                biased=False,
                relu=False,
                name='res2a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn2a_branch2b') .conv(
                        1,
                        1,
                        256,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res2a_branch2c') .batch_normalization(
                            name='bn2a_branch2c'))

        (
            self.feed(
                'bn2a_branch1',
                'bn2a_branch2c') .add(
                name='res2a') .relu(
                name='res2a_relu') .conv(
                    1,
                    1,
                    64,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2b_branch2a') .batch_normalization(
                        relu=True,
                        name='bn2b_branch2a') .conv(
                            3,
                            3,
                            64,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res2b_branch2b') .batch_normalization(
                                relu=True,
                                name='bn2b_branch2b') .conv(
                                    1,
                                    1,
                                    256,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res2b_branch2c') .batch_normalization(
                                        name='bn2b_branch2c'))

        (
            self.feed(
                'res2a_relu',
                'bn2b_branch2c') .add(
                name='res2b') .relu(
                name='res2b_relu') .conv(
                    1,
                    1,
                    64,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res2c_branch2a') .batch_normalization(
                        relu=True,
                        name='bn2c_branch2a') .conv(
                            3,
                            3,
                            64,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res2c_branch2b') .batch_normalization(
                                relu=True,
                                name='bn2c_branch2b') .conv(
                                    1,
                                    1,
                                    256,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res2c_branch2c') .batch_normalization(
                                        name='bn2c_branch2c'))

        (self.feed('res2b_relu',
                   'bn2c_branch2c')
         .add(name='res2c')
         .relu(name='res2c_relu')
         .conv(1, 1, 512, 2, 2, biased=False, relu=False, name='res3a_branch1')
         .batch_normalization(name='bn3a_branch1'))

        (
            self.feed('res2c_relu') .conv(
                1,
                1,
                128,
                2,
                2,
                biased=False,
                relu=False,
                name='res3a_branch2a') .batch_normalization(
                relu=True,
                name='bn3a_branch2a') .conv(
                3,
                3,
                128,
                1,
                1,
                biased=False,
                relu=False,
                name='res3a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn3a_branch2b') .conv(
                        1,
                        1,
                        512,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res3a_branch2c') .batch_normalization(
                            name='bn3a_branch2c'))

        (
            self.feed(
                'bn3a_branch1',
                'bn3a_branch2c') .add(
                name='res3a') .relu(
                name='res3a_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b1_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b1_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b1_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b1_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b1_branch2c') .batch_normalization(
                                        name='bn3b1_branch2c'))

        (
            self.feed(
                'res3a_relu',
                'bn3b1_branch2c') .add(
                name='res3b1') .relu(
                name='res3b1_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b2_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b2_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b2_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b2_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b2_branch2c') .batch_normalization(
                                        name='bn3b2_branch2c'))

        (
            self.feed(
                'res3b1_relu',
                'bn3b2_branch2c') .add(
                name='res3b2') .relu(
                name='res3b2_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b3_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b3_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b3_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b3_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b3_branch2c') .batch_normalization(
                                        name='bn3b3_branch2c'))

        (
            self.feed(
                'res3b2_relu',
                'bn3b3_branch2c') .add(
                name='res3b3') .relu(
                name='res3b3_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b4_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b4_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b4_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b4_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b4_branch2c') .batch_normalization(
                                        name='bn3b4_branch2c'))

        (
            self.feed(
                'res3b3_relu',
                'bn3b4_branch2c') .add(
                name='res3b4') .relu(
                name='res3b4_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b5_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b5_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b5_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b5_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b5_branch2c') .batch_normalization(
                                        name='bn3b5_branch2c'))

        (
            self.feed(
                'res3b4_relu',
                'bn3b5_branch2c') .add(
                name='res3b5') .relu(
                name='res3b5_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b6_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b6_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b6_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b6_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b6_branch2c') .batch_normalization(
                                        name='bn3b6_branch2c'))

        (
            self.feed(
                'res3b5_relu',
                'bn3b6_branch2c') .add(
                name='res3b6') .relu(
                name='res3b6_relu') .conv(
                    1,
                    1,
                    128,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res3b7_branch2a') .batch_normalization(
                        relu=True,
                        name='bn3b7_branch2a') .conv(
                            3,
                            3,
                            128,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res3b7_branch2b') .batch_normalization(
                                relu=True,
                                name='bn3b7_branch2b') .conv(
                                    1,
                                    1,
                                    512,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res3b7_branch2c') .batch_normalization(
                                        name='bn3b7_branch2c'))

        (
            self.feed(
                'res3b6_relu',
                'bn3b7_branch2c') .add(
                name='res3b7') .relu(
                name='res3b7_relu') .conv(
                    1,
                    1,
                    1024,
                    2,
                    2,
                    biased=False,
                    relu=False,
                    name='res4a_branch1') .batch_normalization(
                        name='bn4a_branch1'))

        (
            self.feed('res3b7_relu') .conv(
                1,
                1,
                256,
                2,
                2,
                biased=False,
                relu=False,
                name='res4a_branch2a') .batch_normalization(
                relu=True,
                name='bn4a_branch2a') .conv(
                3,
                3,
                256,
                1,
                1,
                biased=False,
                relu=False,
                name='res4a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn4a_branch2b') .conv(
                        1,
                        1,
                        1024,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res4a_branch2c') .batch_normalization(
                            name='bn4a_branch2c'))

        (
            self.feed(
                'bn4a_branch1',
                'bn4a_branch2c') .add(
                name='res4a') .relu(
                name='res4a_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b1_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b1_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b1_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b1_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b1_branch2c') .batch_normalization(
                                        name='bn4b1_branch2c'))

        (
            self.feed(
                'res4a_relu',
                'bn4b1_branch2c') .add(
                name='res4b1') .relu(
                name='res4b1_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b2_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b2_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b2_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b2_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b2_branch2c') .batch_normalization(
                                        name='bn4b2_branch2c'))

        (
            self.feed(
                'res4b1_relu',
                'bn4b2_branch2c') .add(
                name='res4b2') .relu(
                name='res4b2_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b3_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b3_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b3_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b3_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b3_branch2c') .batch_normalization(
                                        name='bn4b3_branch2c'))

        (
            self.feed(
                'res4b2_relu',
                'bn4b3_branch2c') .add(
                name='res4b3') .relu(
                name='res4b3_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b4_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b4_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b4_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b4_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b4_branch2c') .batch_normalization(
                                        name='bn4b4_branch2c'))

        (
            self.feed(
                'res4b3_relu',
                'bn4b4_branch2c') .add(
                name='res4b4') .relu(
                name='res4b4_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b5_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b5_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b5_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b5_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b5_branch2c') .batch_normalization(
                                        name='bn4b5_branch2c'))

        (
            self.feed(
                'res4b4_relu',
                'bn4b5_branch2c') .add(
                name='res4b5') .relu(
                name='res4b5_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b6_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b6_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b6_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b6_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b6_branch2c') .batch_normalization(
                                        name='bn4b6_branch2c'))

        (
            self.feed(
                'res4b5_relu',
                'bn4b6_branch2c') .add(
                name='res4b6') .relu(
                name='res4b6_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b7_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b7_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b7_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b7_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b7_branch2c') .batch_normalization(
                                        name='bn4b7_branch2c'))

        (
            self.feed(
                'res4b6_relu',
                'bn4b7_branch2c') .add(
                name='res4b7') .relu(
                name='res4b7_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b8_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b8_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b8_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b8_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b8_branch2c') .batch_normalization(
                                        name='bn4b8_branch2c'))

        (
            self.feed(
                'res4b7_relu',
                'bn4b8_branch2c') .add(
                name='res4b8') .relu(
                name='res4b8_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b9_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b9_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b9_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b9_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b9_branch2c') .batch_normalization(
                                        name='bn4b9_branch2c'))

        (
            self.feed(
                'res4b8_relu',
                'bn4b9_branch2c') .add(
                name='res4b9') .relu(
                name='res4b9_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b10_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b10_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b10_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b10_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b10_branch2c') .batch_normalization(
                                        name='bn4b10_branch2c'))

        (
            self.feed(
                'res4b9_relu',
                'bn4b10_branch2c') .add(
                name='res4b10') .relu(
                name='res4b10_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b11_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b11_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b11_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b11_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b11_branch2c') .batch_normalization(
                                        name='bn4b11_branch2c'))

        (
            self.feed(
                'res4b10_relu',
                'bn4b11_branch2c') .add(
                name='res4b11') .relu(
                name='res4b11_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b12_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b12_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b12_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b12_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b12_branch2c') .batch_normalization(
                                        name='bn4b12_branch2c'))

        (
            self.feed(
                'res4b11_relu',
                'bn4b12_branch2c') .add(
                name='res4b12') .relu(
                name='res4b12_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b13_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b13_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b13_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b13_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b13_branch2c') .batch_normalization(
                                        name='bn4b13_branch2c'))

        (
            self.feed(
                'res4b12_relu',
                'bn4b13_branch2c') .add(
                name='res4b13') .relu(
                name='res4b13_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b14_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b14_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b14_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b14_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b14_branch2c') .batch_normalization(
                                        name='bn4b14_branch2c'))

        (
            self.feed(
                'res4b13_relu',
                'bn4b14_branch2c') .add(
                name='res4b14') .relu(
                name='res4b14_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b15_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b15_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b15_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b15_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b15_branch2c') .batch_normalization(
                                        name='bn4b15_branch2c'))

        (
            self.feed(
                'res4b14_relu',
                'bn4b15_branch2c') .add(
                name='res4b15') .relu(
                name='res4b15_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b16_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b16_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b16_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b16_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b16_branch2c') .batch_normalization(
                                        name='bn4b16_branch2c'))

        (
            self.feed(
                'res4b15_relu',
                'bn4b16_branch2c') .add(
                name='res4b16') .relu(
                name='res4b16_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b17_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b17_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b17_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b17_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b17_branch2c') .batch_normalization(
                                        name='bn4b17_branch2c'))

        (
            self.feed(
                'res4b16_relu',
                'bn4b17_branch2c') .add(
                name='res4b17') .relu(
                name='res4b17_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b18_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b18_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b18_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b18_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b18_branch2c') .batch_normalization(
                                        name='bn4b18_branch2c'))

        (
            self.feed(
                'res4b17_relu',
                'bn4b18_branch2c') .add(
                name='res4b18') .relu(
                name='res4b18_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b19_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b19_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b19_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b19_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b19_branch2c') .batch_normalization(
                                        name='bn4b19_branch2c'))

        (
            self.feed(
                'res4b18_relu',
                'bn4b19_branch2c') .add(
                name='res4b19') .relu(
                name='res4b19_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b20_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b20_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b20_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b20_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b20_branch2c') .batch_normalization(
                                        name='bn4b20_branch2c'))

        (
            self.feed(
                'res4b19_relu',
                'bn4b20_branch2c') .add(
                name='res4b20') .relu(
                name='res4b20_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b21_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b21_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b21_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b21_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b21_branch2c') .batch_normalization(
                                        name='bn4b21_branch2c'))

        (
            self.feed(
                'res4b20_relu',
                'bn4b21_branch2c') .add(
                name='res4b21') .relu(
                name='res4b21_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b22_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b22_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b22_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b22_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b22_branch2c') .batch_normalization(
                                        name='bn4b22_branch2c'))

        (
            self.feed(
                'res4b21_relu',
                'bn4b22_branch2c') .add(
                name='res4b22') .relu(
                name='res4b22_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b23_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b23_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b23_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b23_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b23_branch2c') .batch_normalization(
                                        name='bn4b23_branch2c'))

        (
            self.feed(
                'res4b22_relu',
                'bn4b23_branch2c') .add(
                name='res4b23') .relu(
                name='res4b23_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b24_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b24_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b24_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b24_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b24_branch2c') .batch_normalization(
                                        name='bn4b24_branch2c'))

        (
            self.feed(
                'res4b23_relu',
                'bn4b24_branch2c') .add(
                name='res4b24') .relu(
                name='res4b24_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b25_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b25_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b25_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b25_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b25_branch2c') .batch_normalization(
                                        name='bn4b25_branch2c'))

        (
            self.feed(
                'res4b24_relu',
                'bn4b25_branch2c') .add(
                name='res4b25') .relu(
                name='res4b25_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b26_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b26_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b26_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b26_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b26_branch2c') .batch_normalization(
                                        name='bn4b26_branch2c'))

        (
            self.feed(
                'res4b25_relu',
                'bn4b26_branch2c') .add(
                name='res4b26') .relu(
                name='res4b26_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b27_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b27_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b27_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b27_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b27_branch2c') .batch_normalization(
                                        name='bn4b27_branch2c'))

        (
            self.feed(
                'res4b26_relu',
                'bn4b27_branch2c') .add(
                name='res4b27') .relu(
                name='res4b27_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b28_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b28_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b28_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b28_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b28_branch2c') .batch_normalization(
                                        name='bn4b28_branch2c'))

        (
            self.feed(
                'res4b27_relu',
                'bn4b28_branch2c') .add(
                name='res4b28') .relu(
                name='res4b28_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b29_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b29_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b29_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b29_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b29_branch2c') .batch_normalization(
                                        name='bn4b29_branch2c'))

        (
            self.feed(
                'res4b28_relu',
                'bn4b29_branch2c') .add(
                name='res4b29') .relu(
                name='res4b29_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b30_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b30_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b30_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b30_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b30_branch2c') .batch_normalization(
                                        name='bn4b30_branch2c'))

        (
            self.feed(
                'res4b29_relu',
                'bn4b30_branch2c') .add(
                name='res4b30') .relu(
                name='res4b30_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b31_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b31_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b31_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b31_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b31_branch2c') .batch_normalization(
                                        name='bn4b31_branch2c'))

        (
            self.feed(
                'res4b30_relu',
                'bn4b31_branch2c') .add(
                name='res4b31') .relu(
                name='res4b31_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b32_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b32_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b32_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b32_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b32_branch2c') .batch_normalization(
                                        name='bn4b32_branch2c'))

        (
            self.feed(
                'res4b31_relu',
                'bn4b32_branch2c') .add(
                name='res4b32') .relu(
                name='res4b32_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b33_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b33_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b33_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b33_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b33_branch2c') .batch_normalization(
                                        name='bn4b33_branch2c'))

        (
            self.feed(
                'res4b32_relu',
                'bn4b33_branch2c') .add(
                name='res4b33') .relu(
                name='res4b33_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b34_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b34_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b34_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b34_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b34_branch2c') .batch_normalization(
                                        name='bn4b34_branch2c'))

        (
            self.feed(
                'res4b33_relu',
                'bn4b34_branch2c') .add(
                name='res4b34') .relu(
                name='res4b34_relu') .conv(
                    1,
                    1,
                    256,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res4b35_branch2a') .batch_normalization(
                        relu=True,
                        name='bn4b35_branch2a') .conv(
                            3,
                            3,
                            256,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res4b35_branch2b') .batch_normalization(
                                relu=True,
                                name='bn4b35_branch2b') .conv(
                                    1,
                                    1,
                                    1024,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res4b35_branch2c') .batch_normalization(
                                        name='bn4b35_branch2c'))

        (
            self.feed(
                'res4b34_relu',
                'bn4b35_branch2c') .add(
                name='res4b35') .relu(
                name='res4b35_relu') .conv(
                    1,
                    1,
                    2048,
                    2,
                    2,
                    biased=False,
                    relu=False,
                    name='res5a_branch1') .batch_normalization(
                        name='bn5a_branch1'))

        (
            self.feed('res4b35_relu') .conv(
                1,
                1,
                512,
                2,
                2,
                biased=False,
                relu=False,
                name='res5a_branch2a') .batch_normalization(
                relu=True,
                name='bn5a_branch2a') .conv(
                3,
                3,
                512,
                1,
                1,
                biased=False,
                relu=False,
                name='res5a_branch2b') .batch_normalization(
                    relu=True,
                    name='bn5a_branch2b') .conv(
                        1,
                        1,
                        2048,
                        1,
                        1,
                        biased=False,
                        relu=False,
                        name='res5a_branch2c') .batch_normalization(
                            name='bn5a_branch2c'))

        (
            self.feed(
                'bn5a_branch1',
                'bn5a_branch2c') .add(
                name='res5a') .relu(
                name='res5a_relu') .conv(
                    1,
                    1,
                    512,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res5b_branch2a') .batch_normalization(
                        relu=True,
                        name='bn5b_branch2a') .conv(
                            3,
                            3,
                            512,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res5b_branch2b') .batch_normalization(
                                relu=True,
                                name='bn5b_branch2b') .conv(
                                    1,
                                    1,
                                    2048,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res5b_branch2c') .batch_normalization(
                                        name='bn5b_branch2c'))

        (
            self.feed(
                'res5a_relu',
                'bn5b_branch2c') .add(
                name='res5b') .relu(
                name='res5b_relu') .conv(
                    1,
                    1,
                    512,
                    1,
                    1,
                    biased=False,
                    relu=False,
                    name='res5c_branch2a') .batch_normalization(
                        relu=True,
                        name='bn5c_branch2a') .conv(
                            3,
                            3,
                            512,
                            1,
                            1,
                            biased=False,
                            relu=False,
                            name='res5c_branch2b') .batch_normalization(
                                relu=True,
                                name='bn5c_branch2b') .conv(
                                    1,
                                    1,
                                    2048,
                                    1,
                                    1,
                                    biased=False,
                                    relu=False,
                                    name='res5c_branch2c') .batch_normalization(
                                        name='bn5c_branch2c'))

        (self.feed('res5b_relu',
                   'bn5c_branch2c')
         .add(name='res5c')
         .relu(name='res5c_relu')
         .avg_pool(7, 7, 1, 1, padding='VALID', name='pool5')
         .fc(1000, relu=False, name='fc1000')
         .softmax(name='prob'))
